package com.ruoyi.compensationManagement.service;

import java.math.BigDecimal;
import java.util.List;

import com.ruoyi.compensationManagement.domain.CompensationRetireeSubsidyProject;
import com.ruoyi.compensationManagement.domain.CompensationRetirespayroll;
import com.ruoyi.compensationManagement.domain.vo.RetiresPayrollImportVo;
import org.apache.poi.hpsf.Decimal;

/**
 * 退休人员补贴工资Service接口
 *
 * @author ruoyi
 * @date 2022-10-07
 */
public interface ICompensationRetirespayrollService {
    /**
     * 查询退休人员补贴工资
     *
     * @param retireespayrollId 退休人员补贴工资主键
     * @return 退休人员补贴工资
     */
    public CompensationRetirespayroll selectCompensationRetirespayrollByRetireespayrollId(Long retireespayrollId);

    /**
     * 查询退休人员补贴工资（浮动项目）
     *
     * @param retireespayrollId 退休人员补贴工资主键
     * @return 退休人员补贴工资
     */
    public List<CompensationRetireeSubsidyProject> selectfFoatingItemsByRetireespayrollId(Long retireespayrollId);

    /**
     * 查询退休人员补贴工资列表
     *
     * @param compensationRetirespayroll 退休人员补贴工资
     * @return 退休人员补贴工资集合
     */
    public List<CompensationRetirespayroll> selectCompensationRetirespayrollList(CompensationRetirespayroll compensationRetirespayroll);

    /**
     * 新增退休人员补贴工资
     *
     * @param compensationRetirespayroll 退休人员补贴工资
     * @return 结果
     */
    public int insertCompensationRetirespayroll(CompensationRetirespayroll compensationRetirespayroll);

    /**
     * 修改退休人员补贴工资
     *
     * @param compensationRetirespayroll 退休人员补贴工资
     * @return 结果
     */
    public int updateCompensationRetirespayroll(CompensationRetirespayroll compensationRetirespayroll);

    /**
     * 批量删除退休人员补贴工资
     *
     * @param retireespayrollIds 需要删除的退休人员补贴工资主键集合
     * @return 结果
     */
    public int deleteCompensationRetirespayrollByRetireespayrollIds(Long[] retireespayrollIds);

    /**
     * 删除退休人员补贴工资信息
     *
     * @param retireespayrollId 退休人员补贴工资主键
     * @return 结果
     */
    public int deleteCompensationRetirespayrollByRetireespayrollId(Long retireespayrollId);

    /**
     * 确定退休人员补贴工资表
     */
    public int determiningPayrollRetirees(CompensationRetirespayroll compensationRetirespayroll);

    /**
     * 计算工资
     */
    public BigDecimal calculateRetirementWages(CompensationRetirespayroll compensationRetirespayroll);

    /**
     * 是否查询自身补贴工资
     */
    public int isItSelfRetireesPayroll(CompensationRetirespayroll compensationRetirespayroll);

    /**
     *
     * @param RetireesPayrollList
     * @return
     */
    public String importRetireesPayroll(List<RetiresPayrollImportVo> RetireesPayrollList);
}
